//package com.yunhe.device.service.device;
//
//import com.yunhe.common.model.PageParam;
//import com.yunhe.device.domain.device.ConnectivityDevice;
//import com.yunhe.common.exception.ArgumentErrorException;
//import com.yunhe.common.exception.ObjectNotFoundException;
//import com.yunhe.common.exception.UniqueConstraintsException;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.List;
//import java.util.Optional;
//
///**
// * 连接设备Service
// * @desc 连接设备服务类定义
// * @author liuronglei
// */
//public interface ConnectivityDeviceService {
//
//    /**
//     * 新增连接设备
//     * @param connectivityDevice 新增对象
//     */
//    @Transactional
//    ConnectivityDevice createConnectivityDevice(ConnectivityDevice connectivityDevice)
//            throws ArgumentErrorException, UniqueConstraintsException;
//
//    /**
//     * 批量新增连接设备
//     * @param list 连接设备列表
//     */
//    @Transactional
//    Iterable<ConnectivityDevice> createConnectivityDevice(List<ConnectivityDevice> list)
//            throws ArgumentErrorException, UniqueConstraintsException;
//
//    /**
//     * 根据id删除连接设备
//     * @param connectivityDeviceId id
//     */
//    @Transactional
//    void deleteConnectivityDevice(Long connectivityDeviceId);
//
//    /**
//     * 根据代码删除连接设备
//     * @param code 代码
//     */
//    @Transactional
//    Long deleteConnectivityDeviceByCode(Long code);
//
//    /**
//     * 更新连接设备（更新全部字段）
//     * @param connectivityDevice 要更新的连接设备对象
//     */
//    @Transactional
//    ConnectivityDevice updateConnectivityDevice(ConnectivityDevice connectivityDevice)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException;
//
//    /**
//     * 更新连接设备（更新指定字段）
//     * @param connectivityDeviceId id
//     * @param type 连接设备类型：Breaker、Disconnector
//     * @param code 代码
//     * @param name 名称
//     * @param baseVoltageId 基础电压ID
//     * @param iNode I节点
//     * @param jNode J节点
//     * @param substation 变电站ID
//     * @param terminalId 端子ID
//     * @param pathName 路径名
//     * @param breakerType 开关类型
//     * @param startNodeCode 开始节点代码
//     * @param endNodeCode 结束节点代码
//     */
//    @Transactional
//    ConnectivityDevice updateConnectivityDevice(Long connectivityDeviceId,
//                                                String type,
//                                                Long code,
//                                                String name,
//                                                Long baseVoltageId,
//                                                Long iNode,
//                                                Long jNode,
//                                                Long substation,
//                                                List<Long> terminalId,
//                                                String pathName,
//                                                String breakerType,
//                                                Long startNodeCode,
//                                                Long endNodeCode)
//            throws ArgumentErrorException, ObjectNotFoundException, UniqueConstraintsException;
//
//    /**
//     * 根据ID获得连接设备对象
//     * @param id id
//     */
//    ConnectivityDevice findByConnectivityDeviceId(Long id);
//
//    /**
//     * 根据代码获得连接设备对象
//     * @param code 代码
//     */
//    ConnectivityDevice findByCode(Long code);
//
//    /**
//     * 获得所有连接设备对象
//     * @param type 连接设备类型：Breaker、Disconnector
//     * @param pageParam 分页对象
//     */
//    Iterable<ConnectivityDevice> findConnectivityDevicesByType(String type, PageParam pageParam);
//
//}
